local reason, slp_state = pm.lastReson()  --获取唤醒原因
log.info("wakeup state", pm.lastReson())

local d1Name = "D1_TASK"

local function testTask()
    local txData
    if reason == 0 then
        txData = "normal wakeup"
    elseif reason == 1 then
        txData = "timer wakeup"
    elseif reason == 2 then
        txData = "pad wakeup"
    elseif reason == 3 then
        txData = "uart1 wakeup"
    end
    if slp_state > 0 then
        mobile.flymode(0,false) -- 退出飞行模式，进入psm+前进入飞行模式，唤醒后需要主动退出
    end

    gpio.close(32)
    --pwrkey在当前的项目中接地处理，不通过按钮控制，按钮连接wakeup引脚
    gpio.close(35)  --这里pwrkey接地才需要，不接地通过按键控制的不需要
    gpio.setup(32, function() --配置wakeup中断，外部唤醒用
        log.info("gpio")
    end, gpio.PULLUP, gpio.FALLING)

    pm.dtimerStart(3, period)  --启动深度休眠定时器
    mobile.flymode(0,true)     --进入飞行模式 
    pm.power(pm.WORK_MODE,3)   --进入极致功耗模式
    log.info(rtos.meminfo("sys"))
    sys.wait(15000)   --demo演示唤醒时间是一分钟，如果15s后模块重启，则说明进入极致功耗模式失败，
    log.info("进入极致功耗模式失败，尝试重启")
    rtos.reboot()
end

--sysplus.taskInitEx(task1,'a',callback)
sysplus.taskInitEx(testTask, d1Name)


